Xml Document Manager Server Method and Apparatus

ABSTRACT

A method is disclosed of providing an XML Document Manager Server function to an XML Document Manager Client ( 2 - 1 ). The XML Document Manager Server function is enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents. In the method, the logic component is provided by a first network entity ( 60 - 1 ), with which the XML Document Manager Client ( 2 - 1 ) communicates directly or indirectly to receive the XML Document Manager Server function, and the database component is provided by a second network entity ( 70 ) different to the first network entity ( 60 - 1 ).

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method and apparatus relating to an Extensible Markup Language (XML) Document Manager (XDM) Server (XDMS), for example as defined by the Open Mobile Alliance (OMA).

2. Description of the Related Art

The Open Mobile Alliance (OMA) Architecture Document “XML Document Management Architecture” (currently at OMA-AD-XDM-V1_(—)0-20051006-C) describes the features and architecture of the “XML Document Management enabler” as follows.

“The XML Document Management defines a common mechanism that makes user-specific service-related information accessible to the service enablers that need them. Such information is expected to be stored in the network where it can be located, accessed and manipulated (created, changed, deleted, etc.). XDM specifies how such information will be defined in well-structured XML documents, as well as the common protocol for access and manipulation of such XML documents. The XML Configuration Access Protocol (XCAP) [The Extensible Markup Language (XML) Configuration Access protocol (XCAP), http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-07.txt, work in progress], as defined by IETF, has been chosen as the common XML Document Management protocol.

The XDM Specification [“XML Document Management (XDM) Specification”, OMA-TS-XDM_Core-V1_(—)0, available from http://www.openmobilealliance.org/release_program/XDM_archive.html] defines two main features:

-   -   The common protocol, XML Configuration Access Protocol (XCAP),         by which principals can store and manipulate their         service-related data, stored in a network as XML documents.     -   The SIP subscription/notification mechanism by which principals         can be notified of changes to such documents.

Documents accessed and manipulated via XCAP are stored in logical repositories in the network, called XML Document Management Servers (XDMS). Each repository may be associated with a functional entity which uses its data to perform its functions. (For example, a POC server accesses a POC XDMS to obtain a particular type of user document, a POC Group document, which provides the member list for a POC group session, and uses this information to invite such members for a POC session.)

The Shared XDM Specification [“Shared XDM Specification”, OMA-TS-XDM_Shared-V1_(—)0, available from http://www.openmobilealliance.org/release_program/XDM_archive.html] specifies a specific type of repository, called a Shared XDMS, which stores documents which can be reused by other enablers. This enabler specifies one such document: the URI List. This is a convenient way for a principal to group together a number of end user identities (e.g., “Friends” or “Family) or other resources, where such a list is expected to be reused by a number of different enablers.

Due to the reusable nature of the XDM enabler, there will be interactions with other service enablers, and therefore, the architectural design of the XDM enabler accommodates the needs of those enablers.”

The XML Document Manager (XDM) provides an architecture for managing service specific data. The XML Document Management defines a common mechanism that makes user-specific service-related information accessible to the service enablers that need them. The service-specific information is expressed and exchanged by means of XML documents, and this information is stored in the network where it can be located, accessed and manipulated (created, changed, deleted, etc.). The network entity assumed responsible for storing and manipulation of such information is the XDM Server (XDMS).

It is desirable to provide a technically and commercially efficient implementation of the above-described scheme.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention there is provided a method of providing an XML Document Manager Server function to an XML Document Manager Client, the XML Document Manager Server function being enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, in which method the logic component is provided by a first network entity, with which the XML Document Manager Client communicates to receive the XML Document Manager Server function, and the database component is provided by a second network entity different to the first network entity.

At least one XML document may comprise service-specific data.

The at least one operation may be selectable from those defined by the XML Configuration Access Protocol.

The at least one operation may be selectable from the following: accessing the document; manipulating the document; creating the document; replacing the document; deleting the document; retrieving the document; storing the document; creating an XML element in the document; replacing an XML element in the document; deleting an XML element from the document; retrieving an XML element from the document; creating an XML attribute for an XML element in the document; deleting an XML attribute from the document; and retrieving an XML attribute from the document.

The method may comprise, when the at least one operation comprises an operation to retrieve an XML document already stored in the database component, sending a request for the XML document from the first network entity to the second network entity, and receiving the requested XML document at the first network entity from the second network entity.

The method may further comprise, when the at least one operation comprises an operation to modify the XML document, modifying the XML document at the first network entity and sending the modified XML document from the first network entity to the second network entity for storing back in the database component.

The method may comprise, when the at least one operation comprises an operation to store an XML document not already stored in the database component, sending the XML document from the first network entity to the second network entity for storing in the database component.

The first network entity may appear to the XML Document Manager Client as an XML Document Manager Server.

The second network entity may be a Home Subscriber Server of an IP Multimedia Subsystem.

Communication between the first network entity and the second network entity may be determined at least in part by the sh-interface protocol.

The second network entity may be optimised for data storage.

The method may comprise receiving at least one message from the XML Document Manager Client at the first network entity that specifies the at least one operation to be performed.

The at least one message may conform to the XML Configuration Access Protocol.

A plurality of such database components may be provided in separate respective second network entities.

The plurality of database components may be associated with different respective services.

The first network entity may communicate with the XML Document Manager Client via another network entity.

According to a second aspect of the present invention there is provided a network apparatus for providing an XML Document Manager Server function to an XML Document Manager Client, the XML Document Manager Server function being enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, in which network apparatus the logic component is provided by a first network entity, with which the XML Document Manager Client communicates to receive the XML Document Manager Server function, and the database component is provided by a second network entity different to the first network entity.

According to a third aspect of the present invention there is provided a network entity for providing at least part of an XML Document Manager Server function to an XML Document Manager Client, the XML Document Manager Server function being enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, the network entity comprising: the logic component, with the database component being provided by a separate entity of the network; and means for cooperating with the separate network entity to provide the XML Document Manager Server function to the XML Document Manager Client.

According to a fourth aspect of the present invention there is provided an operating program which, when run on an apparatus, causes the apparatus to carry out a method according to the first aspect of the present invention.

According to a fifth aspect of the present invention there is provided an operating program which, when loaded into an apparatus, causes the apparatus to become apparatus according to the third aspect of the present invention.

The operating program may be carried on a carrier medium. The carrier medium may be a transmission medium. The carrier medium may be a storage medium.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram schematically illustrating network entities of an existing XML Document Management Architecture solution;

FIG. 2 is a block diagram schematically illustrating network entities of an XML Document Management Architecture embodying the present invention;

FIG. 3 is a signal flow diagram illustrating the operation of an embodiment of the present invention to retrieve service data from an XDM Server;

FIG. 4 is a signal flow diagram illustrating the operation of an embodiment of the present invention to modify service data associated with an XDM Server; and

FIG. 5 is a schematic diagram illustrating parts of a UMTS network.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

As described above, in the existing solution for the XML Document Management Architecture, the network entity assumed responsible for storing and manipulation of service-specific information, expressed and exchanged by means of XML documents, is the XDM Server (XDMS). The following is an extract from the above-referenced OMA Architecture Document: “Documents accessed and manipulated via XCAP are stored in (logical) repositories in the network, called generically XML Document Management Servers (XDMS), each repository being associated with a functional entity which uses the data in its associated repository to perform its functions. For example, a POC server accesses a POC XDMS to obtain a particular type of user document, a POC Group document, which provides the member list for a POC group session, and uses this information to invite such members for a POC session.”

FIG. 1 illustrates the relevant network entities defined in the above-referenced OMA Architecture Document (the OMA Architecture Document introduces other network entities, but these are of little relevance here). In FIG. 1, two XDM Clients 2-1 and 2-2 are in communication with respective different XDM Servers 6-1 and 6-2 via an Aggregation Proxy 4. The XDM Clients 2-1 and 2-2 are client entities that provide access to the various XDMS features. They provide an end user with the possibility to create, modify or delete an XML document, and by that create, modify or delete service specific data. The Aggregation Proxy 4 is the contact point for the XDM Clients 2-1 and 2-2 to access XML documents stored in any XDM Server; the Aggregation Proxy 4 performs functions like authentication or routing of requests. The XDM Servers 6-1 and 6-2 hold the service specific data, and implement the procedures to create, modify or delete such data.

The existing solution as shown in FIG. 1 assumes the service specific data to be stored and available in the XDMS. As a consequence, a user of this data is bound to a particular instance of the XDMS. This has the consequence that high availability requirements are placed components of the XDMS, which means higher development costs. Another consequence is that two copies of the service specific data exist in the network: one in the XDMS, and another one in the network entity responsible for executing the service (for example an IMS application server, for more of which, see below). This leads to a requirement for synchronisation, which is technically burdensome to provide.

An embodiment of the present invention is intended to address the above-mentioned problems.

Internally, it can be considered that a direct implementation of an XDMS as set out in the above-referenced OMA Architecture Document would consist of (at least) two sub-functions: (a) database component for storing the service specific data; and (b) an XDMS logic component for handling the manipulation of the data. In the existing solution described above with reference to FIG. 1, the XDMS is aware of the current status of the service specific data, and it can be regarded as state-full.

On the contrary, in an embodiment of the present invention, storing of the service specific data is separated from the XDMS execution logic, and as such an embodiment of the present invention can be seen as introducing a state-less XDMS.

FIG. 2 illustrates an embodiment of the present invention. The architecture outlined above with reference to FIG. 1 is enhanced in the following way in the embodiment shown in FIG. 2. The XDM Servers 6-1 and 6-2 of FIG. 1 are respectively replaced by XDM Server Execution Logic network entities 60-1 and 60-2 in FIG. 2. In addition, a Service Specific Data Repository 70 is provided in FIG. 2.

The network entities 60-1 and 60-2 are referred to above as XDM Server Execution Logic network entities, but they are visible to the XDM Clients 2-1 and 2-2 as if they were “normal” XDM Servers like the XDM Servers 6-1 and 6-2 of FIG. 1, differing from “normal” XDM Servers mainly in having only the XDMS logic component and not the database component. The XDM Clients 2-1 and 2-2 are unaffected by, and do not need to know of, the separation of the data repository 70 from the XDM Server Execution Logic network entities 60-1 and 60-2. For this reason, the XDM Server Execution Logic network entities 60-1 and 60-2 in an embodiment of the present invention can also be referred to simply as XDM Servers 60-1 and 60-2.

In an embodiment of the present invention, at invocation of the XDMS function, data is fetched from a central network repository (for example, the Service Specific Data Repository 70), which can be optimised for data storage. In this way, the XDMS Execution Logic network entities 60-1 and 60-2 are state-less and can be implemented without considering high availability requirements, as any XDMS Execution Logic entity in the network could be used as fall-back. It also eliminates the need for data synchronisation.

At reception of an XDM request to modify service specific data, in an embodiment of the present invention the XDMS Execution Logic network entity 60-1 or 60-2 would:

-   -   Fetch an up-to-date copy of the service specific data from the         data repository 70.     -   Perform the necessary actions on the data.     -   Store the modified data back into the data repository 70.

Request for creation or deletion of service specific data are handled in a similar manner. Using this mechanism, the XDMS Execution Logic network entity 60-1 or 60-2 does not need to have any memory of the current state of the service data. It can be implemented in a transparent and state-less way.

Retrieval and modification of service data in an embodiment of the present invention will be described in more detail below with reference to FIGS. 3 and 4 respectively. This embodiment is described in the context of IP Multimedia Subsystem (IMS), and before a detailed description of the embodiment, the context within which the embodiment is implemented will first be described.

UMTS (Universal Mobile Telecommunications System) is a third generation wireless system designed to provide higher data rates and enhanced services to subscribers. UMTS is a successor to the Global System for Mobile Communications (GSM), with an important evolutionary step between GSM and UMTS being the General Packet Radio Service (GPRS). GPRS introduces packet switching into the GSM core network and allows direct access to packet data networks (PDNs). This enables high-data rate packets switch transmissions well beyond the 64 kbps limit of ISDN through the GSM call network, which is a necessity for UMTS data transmission rates of up to 2 Mbps. UMTS is standardised by the 3^(rd) Generation Partnership Project (3GPP) which is a conglomeration of regional standards bodies such as the European Telecommunication Standards Institute (ETSI), the Association of Radio Industry Businesses (ARIB) and others.

The standardisation of UMTS has progressed in three phases. The first phase is known as Release '99. The Release '99 specifications define the basic architecture that consists of the UMTS Terrestrial Radio Access Network (UTRAN), Circuit Switched Core Network (CS-CN) and Packet Switched Core Network (PS-CN). The release '99 specification offers traditional circuit as well as packet-switched services. The next phase in the standardisation process is Release 4,adding new services to the '99 architecture. Release 5 represents a significant shift, offering both traditional telephony as well as packet-switched services over a single converged packet-based network.

The UMTS Release 5 architecture adds a new subsystem known as the IP Multimedia Subsystem (IMS) to the PS-CN for supporting traditional telephony as well as new multimedia services. IMS provides IP Multimedia services over mobile communication networks (3GPP TS 22.228, TS 23.228, TS 24.229, TS 29.228, TS 29.229, TS 29.328 and TS 29.329 Releases 5 to 7). IMS provides key features to enrich the end-user person-to-person communication experience through the use of standardised IMS Service Enablers, which facilitate new rich person-to-person (client-to-client) communication services as well as person-to-content (client-to-server) services over IP-based networks. The IMS is able to connect to both PSTN/ISDN (Public Switched Telephone Network/Integrated Services Digital Network) as well as the Internet.

The IMS makes use of the Session Initiation Protocol (SIP) to set up and control calls or sessions between user terminals (or user terminals and application servers). The Session Description Protocol (SDP), carried by SIP signalling, is used to describe and negotiate the media components of the session. Whilst SIP was created as a user-to-user protocol, IMS allows operators and service providers to control user access to services and to charge users accordingly. The 3GPP has chosen SIP for signalling between a User Equipment (UE) and the IMS as well as between the components within the IMS.

FIG. 5 is an illustrative diagram showing a UMTS communications network 200 comprising a User Equipment (UE) 204 located within a Visited Network 202. The UE 204 is attached to a Serving GPRS Support Node (SGSN) 208 via a UTRAN 206, which is in turn in communication with a Gateway GPRS Support Node (GGSN) 210. Within the Visited Network 202, the GGSN 210 communicates with a Proxy Call Session Control Function (P-CSCF) 212, which is the first point of contact in the visited IMS network for the UE 204. The P-CSCF 212 forwards SIP registration messages and session establishment messages to the Home Network 214.

The first point of contact within the Home Network 214 is the Interrogating Call Session Control Function (I-CSCF) 216, which is an optional node in the IMS architecture, whose main purpose is to query the Home Subscriber Server (HSS) 220 to find the location of the Serving Call Session Control Function (S-CSCF) 218. The S-CSCF 218 performs session management for the IMS network, and there can be several S-CSCFs in the network. The HSS 220 is a centralised subscriber database, and has evolved from the Home Location Register (HLR) from earlier UMTS releases. The HSS 220 interfaces with the I-CSCF and the S-CSCF to provide information about the location of the subscriber and the subscriber's subscription information.

The communications network 200 further comprises an application server 222, a database 224 and a mail server 226 located in the Home Network 214. From the S-CSCF 218, signalling messages are passed to the intended destination, which may be another Release 5 IMS network 228 comprising a UE 230, or to a legacy network 232 comprising a PSTN interfaced through a Media Gateway Control Function (MGCF), or to an IP network 234. The application servers 222 are for implementing IMS service functionality, providing services to end-users in an IMS system.

Specific details of the operation of the UMTS communications network 200 and of the various components within such a network can be found from the Technical Specifications for UMTS which are available from http://www.3gpp.org.

Returning now to FIGS. 3 and 4, in this embodiment of the present invention, which is set in the context of the IMS, the central repository 70 described above with reference to FIG. 2 is embodied in the HSS 220 shown in FIG. 5. The standardised sh-interface [3GPP TS 29.328 V6.3.0 (2004-09); Technical Specification; 3rd Generation Partnership Project; Technical Specification Group Core Network; IP Multimedia (IM) Subsystem Sh interface; Signalling flows and message contents] can be used to access/store the service specific data in HSS 220, as will now be described in more detail.

Referring to FIG. 3, a method embodying the present invention is described in which the XDM Client 2-1 wishes to retrieve service data from the XDM Server 60-1. In step S1 an XCAP GET message is sent from the XDM Client 2-1 to the XDM Server 60-1 containing subscriber identification; the service data is identified in this embodiment by means of XML schema and name space identifiers. In response, in step S2 the XDM Server 60-1 sends a Sh-Pull message to the HSS 220 with the subscriber identification. In response to receipt of the Sh-Pull message, the HSS 220 retrieves the service data from the database and sends it to the XDM Server 60-1 with a Sh-Pull Response message in step S3. The service data is then forwarded to the XDM Client 2-1 by the XDM Server 60-1 with an XCAP OK message in step S4.

Referring to FIG. 4, a method embodying the present invention is described in which the XDM Client 2-1 wishes to modify service data associated with the XDM Server 60-1. In step T1 an XCAP PUT message is sent from the XDM Client 2-1 to the XDM Server 60-1 containing subscriber identification and the modified service data, or at least information setting out how the service data is to be modified; this might be expressed by means of an update XML document—for example in step S4 above the original XML document is sent to the XDM Client 2-1, which updates the document, and sends it back in step T1. In response, in step T2 the XDM Server 60-1 sends a Sh-Pull message to the HSS 220 together with the subscriber identification; the above-mentioned 3GPP Sh Interface Specification defines the access key to the service data in the HSS (both for Sh-pull and Sh-update) as: User-Identity+Data-Reference+Service-Indication). In response to receipt of the Sh-Pull message, the HSS 220 retrieves the service data from the database and sends it to the XDM Server 60-1 with a Sh-Pull Response message in step T3. In step T4 the XDM Server 60-1 modifies the service data according to the request received in step T1, and in step T5 the modified service data is sent to the HSS 220 together with the subscriber identification with a Sh-Update message. When the modified service data has been stored in the HSS 220, the HSS 220 replies to the XDM Server 60-1 with a Sh-Update Response message in T6, and in step T7 the modified service data is sent to the XDM Client 2-1 by the XDM Server 60-1 with an XCAP OK message.

An embodiment of the present invention provides one or more of the following advantages over the above-described existing solution:

-   -   A state-less XDMS implementation does not need to fulfil high         availability requirements, and is therefore less costly.     -   Data storage can be centralised in the network, and therefore be         easily accessed also by other entities, without creating the         need for synchronisation.     -   Data storage can be centralised in the network elements which         are optimised for that purpose.

It will be appreciated that, although the above embodiment is described in the context of IMS and UMTS, it will be appreciated that IMS is not limited to mobile networks but is also applicable to fixed networks and other types of network altogether. An embodiment of the present invention is not limited to its application within the context of IMS or UMTS.

It will be appreciated that operation of one or more of the above-described components can be controlled by a program operating on the device or apparatus. Such an operating program can be stored on a computer-readable medium, or could, for example, be embodied in a signal such as a downloadable data signal provided from an Internet website. The appended claims are to be interpreted as covering an operating program by itself, or as a record on a carrier, or as a signal, or in any other form. 

1-22. (canceled)
 23. The method of providing XML Document Manager (XDM) Server functionality to an XDM Client, said method comprising the steps of: storing at least one XML document in a database; causing at least one operation to be performed on one or more of the at least one XML documents by a logic component, the at least one operation being selectable from a plurality of operations defined by an XML Configuration Access Protocol; wherein the logic component is provided by a first network entity and the database is provided by a second network entity different from the first network entity, and the method further comprises communicating between the logic component and the XDM Client to provide the XDM Server functionality to the XDM Client.
 24. The method as recited in claim 23, wherein at least one XML document comprises service-specific data.
 25. The method as recited in claim 23, wherein the at least one operation is selectable from the following operations: accessing the XML document; manipulating the XML document; creating the XML document; replacing the XML document; deleting the XML document; retrieving the XML document; storing the XML document; creating an XML element in the XML document; replacing an XML element in the XML document; deleting an XML element from the XML document; retrieving an XML element from the XML document; creating an XML attribute for an XML element in the XML document; deleting an XML attribute from the XML document; and retrieving an XML attribute from the document.
 26. The method as recited in claim 23, wherein the at least one operation comprises an operation to retrieve an XML document already stored in the database, and the causing step includes: sending a request for the XML document from the first network entity to the second network entity; and receiving the requested XML document at the first network entity from the second network entity.
 27. The method as recited in claim 26, further comprising, wherein the at least one operation comprises an operation to modify the XML document, and the causing step includes: modifying the XML document at the first network entity; and sending the modified XML document from the first network entity to the second network entity for storing in the database.
 28. The method as recited in claim 23, wherein the at least one operation comprises an operation to store an XML document not already stored in the database component, and the causing step includes sending the XML document from the first network entity to the second network entity for storing in the database.
 29. The method as recited in claim 23, wherein the communicating step includes sending messages from the first network entity to the XDM Client to make the first network entity appear as an XDM Server.
 30. The method as recited in claim 23, wherein the second network entity is a Home Subscriber Server of an IP Multimedia Subsystem.
 31. The method as recited in claim 30, wherein communication between the first network entity and the second network entity is determined at least in part by the sh-interface protocol.
 32. The method as recited in claim 23, further comprising optimizing the second network entity for data storage.
 33. The method as recited in claim 23, wherein the communicating step includes receiving at least one message from the XDM Client at the first network entity that specifies the at least one operation to be performed.
 34. The method as recited in claim 33, wherein the at least one message conforms to the XML Configuration Access Protocol.
 35. The method as recited in claim 23, wherein the storing step includes storing a plurality of XML documents in a plurality of databases, each database being provided in a separate respective second network entity.
 36. The method as recited in claim 35, wherein the plurality of databases are associated with different respective services.
 37. The method as recited in claim 23, wherein the first network entity communicates with the XDM Client via another network entity.
 38. A network apparatus for providing XML Document Manager (XDM) Server functionality to an XDM Client, said apparatus comprising: a database for storing at least one XML document; and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, the at least one operation being selectable from a plurality of operations defined by an XML Configuration Access Protocol; wherein the logic component is provided by a first network entity and the database is provided by a second network entity different to the first network entity; wherein the first network entity includes means for communicating between the logic component and the XDM Client to provide the XDM Server functionality to the XDM Client.
 39. A network entity for providing XML Document Manager (XDM) Server functionality to an XDM Client, said network entity comprising: means for interfacing with a database that stores at least one XML document; a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, the at least one operation being selectable from a plurality of operations defined by an XML Configuration Access Protocol; and means for communicating between the logic component and the XDM Client to provide the XDM Server functionality to the XDM Client.
 40. A computer program loaded on an internal memory of a network entity, comprising software code portions for performing the following steps when the computer program is run on a processor of the network entity: interfacing with a database that stores at least one XML document; performing at least one operation on one or more of the at least one XML documents, the at least one operation being selectable from a plurality of operations defined by an XML Configuration Access Protocol; and communicating with an XML Document Manager (XDM) Client to provide XDM Server functionality to the XDM Client. 